#pragma once
#include <vector>
#include <assert.h>

using namespace std;

typedef struct {
    unsigned int line;
    int charPosition;
    long long start;
    long long stop;
}PDTANTLRProp_t;

class PDTANTLRProperty {
public:
    vector <unsigned int> line;
    vector <int> charPosition;
    vector <long long> start;
    vector <long long> stop;
    
    unsigned int idx;

    PDTANTLRProperty(): idx(0) {
    }

    unsigned int getLine(unsigned int index=0);
    int getCharPosition(unsigned int index=0);
    long long getStart(unsigned int index=0);
    long long getStop(unsigned int index=0);

    unsigned int setLine(unsigned int &);
    int setCharPosition(int &);
    long long setStart(long long &);
    long long setStop(long long &);

    void setAllData(PDTANTLRProp_t & prop);
};
